package com.subject.common.annotation;

import com.subject.common.enums.BusinessType;
import com.subject.common.enums.OperatorType;
import java.lang.annotation.*;

/**
 * 保存的log信息
 */
@Target({ElementType.PARAMETER, ElementType.METHOD}) // 注解作用参数和方法上
@Retention(RetentionPolicy.RUNTIME) // 运行时保留
public @interface Log {

    /**
     * 日志标题
     */
    public String title() default "";

    /**
     * 业务类型
     */
    public BusinessType businessType() default BusinessType.OTHER;

    /**
     * 操作人
     */
    public OperatorType operatorType() default OperatorType.MANAGE;

    /**
     * 是否报错请求参数
     */
    public boolean isSaveRequestData() default true;

    /**
     * 是否保存响应参数
     */
    public boolean isSaveResponseData() default true;

    /**
     * 排除参数
     */
    public String[] excludeParamNames() default {};
}
